/*
 * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package com.sun.corba.se.impl.resolver;

import com.sun.corba.se.spi.resolver.Resolver;

import com.sun.corba.se.spi.orb.ORB;

import com.sun.corba.se.spi.orb.Operation;
import com.sun.corba.se.spi.orb.StringPair;

public class ORBInitRefResolverImpl implements Resolver {

  Operation urlHandler;
  java.util.Map orbInitRefTable;

  public ORBInitRefResolverImpl(Operation urlHandler, StringPair[] initRefs) {
    this.urlHandler = urlHandler;
    orbInitRefTable = new java.util.HashMap();

    for (int i = 0; i < initRefs.length; i++) {
      StringPair sp = initRefs[i];
      orbInitRefTable.put(sp.getFirst(), sp.getSecond());
    }
  }

  public org.omg.CORBA.Object resolve(String ident) {
    String url = (String) orbInitRefTable.get(ident);
    if (url == null) {
      return null;
    }

    org.omg.CORBA.Object result =
        (org.omg.CORBA.Object) urlHandler.operate(url);
    return result;
  }

  public java.util.Set list() {
    return orbInitRefTable.keySet();
  }
}
